#ifndef _QUEUE_H
#define _QUEUE_H

/*******************************************************************************
** @file:	Queue.h
** @author:	Nestor Felipe
** @date:	Jun 29, 2010
**
** @desc:	This class represent a Queue with the FIFO logic used 
**		(first in, first out).
**
*******************************************************************************/
#include <iostream>
#include "LinkedList.h"
#include "LinkedListNode.h"

template <class T>
class Queue : public LinkedList<T*>
{
	private:
		
	public:
		Queue(){};
		/*
		*
		*
		*
		*/
		void push(T* dat)
		{
			LinkedList<T*>::addToTail(dat);
		}

		T* pop()
		{
// 			T* toReturn = LinkedList<T*>::removeToHead();
			return LinkedList<T*>::removeToHead(); //toReturn;
		}
};

// template <class T>
// Queue<T>::Queue()
// {
// // 	List<T>::List();
// }
/*
template <class T>
void Queue<T>::push(T dat)
{
	

}
*/
//template <class T>
//const T& Queue<T>::pop()


#endif 
